Dalam arsitektur sistem C++ berskala besar, mendefinisikan struktur formal struct untuk setiap pengelompokan data sementara sering kali berlebihan. Objek std::tuple berfungsi sebagai kontainer heterogen, yang memperluas std::pair untuk menyimpan jumlah tak terbatas tipe yang berbeda.
1. Konstruksi & Keterbatasan
Berbeda dengan kontainer standar, konstruktor tuple adalah eksplisit. Anda tidak dapat menggunakan inisialisasi salinan dengan daftar; Anda harus menggunakan inisialisasi langsung atau std::make_tuple.
tuple<int, double> t2 = {1, 2.5}; // Kesalahan!
2. Akses & Introspeksi
Anggota diakses melalui get<i>(nama_tuple), di mana i harus merupakan ekspresi konstan yang diketahui pada saat kompilasi. Metadata dapat ditanyakan melalui tuple_size dan tuple_element menggunakan decltype.
3. Logika Relasional
Tuples dibandingkan secara leksikografis. Perbandingan hanya valid jika kedua tuple memiliki jumlah anggota yang sama dan tipe-tipe terkait mendukung operator relasional.